/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller.algorithme;

import controller.AscenseurControleur;
import controller.DateControleur;
import model.AppelAscenseur;
import model.Ascenseur;
import model.Batiment;
import model.Date;

/**
 *
 * @author benoit
 */
public class AlgoModeAutomatique implements Algorithme {
    DateControleur dateControleur;
    AscenseurControleur ascenseurControleur;

    public AlgoModeAutomatique(DateControleur dateControleur,AscenseurControleur ascenseurControleur) {
        this.dateControleur = dateControleur;
        this.ascenseurControleur = ascenseurControleur;
    }
    
    @Override
    public Ascenseur choisirAscenseur(AppelAscenseur appelAscenseur, Batiment batiment) {
        Ascenseur as;
        AlgoEconomieEnergie algoEcoEnergie = new AlgoEconomieEnergie(ascenseurControleur);
        AlgoTrajetLePlusCourt algoTrajetLePlusCourt = new AlgoTrajetLePlusCourt();
        Date limite1 = new Date(8,0,0);
        Date limite2 = new Date(20,0,0);
        
        if(limite1.compareTo(dateControleur.getDate())<=0
            && limite2.compareTo(dateControleur.getDate()) >=0) {
            System.out.println("Algo Trajet le plus court");
            as = algoTrajetLePlusCourt.choisirAscenseur(appelAscenseur, batiment);
        } else {
            System.out.println("Algo Eco Energie utilisé");
            as = algoEcoEnergie.choisirAscenseur(appelAscenseur, batiment);
        } 
        
        return as;
    }
}
